package com.fdb.efp.nls.common.constant;

/**
 * 队列任务枚举类
 * 
 * @author huangwb
 * @since 2018年12月27日 下午12:02:13
 * @version 1.0
 */
public class QueueTaskEnums {
	/**
	 * 响应信息
	 * 
	 * @author huangwb
	 * @since 2019年1月3日 下午4:04:12
	 * @version 1.0
	 */
	public enum RspInfoEnum {
		FAILURE("0", "执行失败"), SUCCESS("1", "执行成功"), HANG("2", "执行挂起"), HANG_MAX_TIMES("3", "执行挂起次数达到最大次数");
		private String rspCode;// 响应码
		private String rspMsg;// 响应信息

		public String getRspCode() {
			return rspCode;
		}

		public String getRspMsg() {
			return rspMsg;
		}

		private RspInfoEnum(String rspCode, String rspMsg) {
			this.rspCode = rspCode;
			this.rspMsg = rspMsg;
		}

	}

	/**
	 * 队列挂起异常次数
	 * 
	 * @author huangwb
	 * @since 2019年1月2日 下午5:12:09
	 * @version 1.0
	 */
	public enum QueueHangTimesEnum {
		INITIALIZE(0), MAX(3);

		private int times;// 挂起次数

		public int getTimes() {
			return times;
		}

		private QueueHangTimesEnum(int times) {
			this.times = times;
		}

	}

	/**
	 * 消费方ID
	 * 
	 * @author huangwb
	 * @since 2018年12月27日 下午4:00:47
	 * @version 1.0
	 */
	public enum QueueConsumerIdEnum {
		QUEUE("QUEUE", "队列"), ROCKETMQ("ROCKETMQ", "RocketMQ消息队列");

		private String consumerCode;// 消费方ID码值
		private String consumerName;// 消费方名称

		public String getConsumerCode() {
			return consumerCode;
		}

		public String getConsumerName() {
			return consumerName;
		}

		/**
		 * @param consumerCode
		 *            消费方ID码值
		 * @param consumerName
		 *            消费方名称
		 */
		private QueueConsumerIdEnum(String consumerCode, String consumerName) {
			this.consumerCode = consumerCode;
			this.consumerName = consumerName;
		}

	}

	/**
	 * 队列任务状态
	 * 
	 * @author huangwb
	 * @since 2018年12月27日 下午2:33:33
	 * @version 1.0
	 */
	public enum QueueTaskStateEnum {
		EXECUTORY("000", "待执行"), EXECUTING("010", "执行中"), HANG("001", "挂起"), SUCCESS("100", "执行成功"), FAILURE("101", "执行失败"), REVOKED("102", "审批作废"), PAUSE("110", "暂停");

		private String code;// 码值
		private String desc;// 描述

		public String getCode() {
			return code;
		}

		public String getDesc() {
			return desc;
		}

		private QueueTaskStateEnum(String code, String desc) {
			this.code = code;
			this.desc = desc;
		}
	}

	/**
	 * 队列响应信息
	 * 
	 * @author huangwb
	 * @since 2018年12月27日 下午2:39:39
	 * @version 1.0
	 */
	public enum QueueTaskRespInfoEnum {
		SUCCESS("000", "执行成功");

		private String rspCode;// 响应码
		private String rspMsg;// 响应信息

		public String getRspCode() {
			return rspCode;
		}

		public String getRspMsg() {
			return rspMsg;
		}

		private QueueTaskRespInfoEnum(String rspCode, String rspMsg) {
			this.rspCode = rspCode;
			this.rspMsg = rspMsg;
		}
	}
}
